Przykad 4.4. Rekurencyjna implementacja funkcji selectKth w C
/**
  * Liniowy w przypadku rednim, rekurencyjny algorytm znajdowania
  * pozycji k-tego elementu w ar, modyfikowanego w trakcie tego obliczenia.
  * Zauwamy, e 1 <= k <= right-left+1. Funkcja porwnujc cmp
  * jest potrzebna do odpowiedniego porwnywania elementw.
  * Przypadek najgorszy jest kwadratowy, czyli O(n^2)
  */
int selectKth (void **ar, int(*cmp)(const void *, const void *),
               int k, int left, int right) {
   int idx = selectPivotIndex(ar, left, right);
   int pivotIndex = partition(ar, cmp, left, right, idx); 
   if (left+k-1 == pivotIndex) { return pivotIndex; }

   /* Kontynuuj ptl, odpowiednio zawajc przedzia. Jeli jestemy
    * na lewo od elementu osiowego, to k moe pozosta niezmienione */
   if (left+k-1 < pivotIndex) {
      return selectKth(ar, cmp, k, left, pivotIndex-1);
   } else {
      return selectKth(ar, cmp, k  ( pivotIndex-left+1), pivotIndex+1, right);
   }
}
